package sz.szsmk.citizencard.mvp.contract;

import sz.szsmk.citizencard.gover.FunctionItem;
import sz.szsmk.citizencard.model.network.bean.response.BaseBean;
import sz.szsmk.citizencard.model.network.bean.response.CloudFlashRes;
import sz.szsmk.citizencard.model.network.bean.response.GetOrderOpenidRes;
import sz.szsmk.citizencard.model.network.bean.response.QueryAllFunctionNewRes;
import sz.szsmk.citizencard.model.network.bean.response.SeleciUserAuthRes;
import sz.szsmk.citizencard.model.network.bean.response.VerifyBindNgUserRes;
import sz.szsmk.citizencard.ui.base.IBaseContact;

/**
 * Copyright (c)2018
 * author: zdh
 * created on: 2018/5/22 15:42
 * description:
 */
public interface IGoverContact {

    interface IGoverPresenter<T extends IBaseContact.IBaseView>
            extends IBaseContact.IBasePresenter {


        void getViewData();

        void changeUserFunc(String s);


        void selectUserAuth(String gjj, FunctionItem data);

        void checkSuccessOrderStatus();

        void getGetOrderId(String url, String type, FunctionItem data);

        void getGetOrderIdForNGBOSS(String url, String tyhm, FunctionItem data);

        void getGetOrderIdForGHF(String url, String tyhm);

        void verifyBindNgUser();

        void toBindNgUser();

        void userBehaviorBrowse(int id);

    }

    interface IGoverView extends IBaseContact.IBaseView {

        void getViewDataSucc(QueryAllFunctionNewRes response);

        void getViewDataFail(QueryAllFunctionNewRes response);

        void changeUserFuncFail(BaseBean response);

        void changeUserFuncSucc();

        void selectUserAuthFail();

        void selectUserAuthSucc(SeleciUserAuthRes response, String type, FunctionItem data);

        void checkSuccessOrderStatusFail(CloudFlashRes cloudFlashRes);

        void checkSuccessOrderStatusSucc(String orderStatus);

        void getGetOrderIdFail();

        void getGetOrderIdSucc(GetOrderOpenidRes response, String type, String url, FunctionItem data);

        void getGetOrderIdForNGBOSSResult(GetOrderOpenidRes response, String type, String url, FunctionItem data);

        void getGetOrderIdForGHFResult(GetOrderOpenidRes response, String type, String url);

        void verifyBindNgUserSucc(VerifyBindNgUserRes verifyBindNgUserRes);


        void toBindNgUserSucc(VerifyBindNgUserRes verifyBindNgUserRes);
        void toRedirectNgUrlSucc(VerifyBindNgUserRes verifyBindNgUserRes);

    }


}
